ethical hacking c++ hack programming penetration hacker network security information security vulnerability assessment hacking php security anal penetration testing java